package br.edu.ufcg.p1.barzin.async;

import static br.edu.ufcg.p1.barzin.util.PrefManConstants.TABLET_ID;
import android.os.AsyncTask;
import br.edu.ufcg.p1.barzin.App;
import br.edu.ufcg.p1.barzin.event.EventBus;
import br.edu.ufcg.p1.barzin.event.MsgEnviadaEvento;
import br.edu.ufcg.p1.barzin.model.Mensagem;
import br.edu.ufcg.p1.barzin.util.HTTPCalls;

public class EnviaMsgTask extends AsyncTask<Mensagem, Integer, Mensagem> {

	@Override
	protected Mensagem doInBackground(Mensagem... id) {

		if (id.length != 1) {
			return null;
		}

		Integer tabletId = App.environment().getSharedPreferences()
				.getInt(TABLET_ID, -1);
		id[0].setIdRemetente(tabletId);

		Mensagem msgEnviada = HTTPCalls.enviaMsg(id[0]);
		if (msgEnviada != null) {
			App.environment().getDao().salvaMensagem(msgEnviada);
		}

		return msgEnviada;
	}

	@Override
	protected void onPostExecute(Mensagem id) {
		super.onPostExecute(id);
		if (id != null) {
			EventBus.getInstance().publica(
					new MsgEnviadaEvento(id.getIdDestinatario()));
		}
	}

}
